SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCCANJ_CLIE_I05]      
/*-------------------------------------------------------*/        
/*---Empresa              : OFISIS S.A.                --*/        
/*---Cliente              : OFISIS S.A.                --*/        
/*---Sistema              : Tesoreria                  --*/        
/*---M÷dulo               : Empresa                    --*/        
/*---Programa             : Grabaci÷n Letras Generadas --*/        
/*                          por Canje                  --*/        
/*---       CTAS POR COBRAR            --*/         
/*---Script               : tccanj_clie1.sql           --*/        
/*---Nombre SP            : SP_TCCANJ_CLIE_I05         --*/        
/*---Desarrollado por     : Eduardo Vivar              --*/        
/*---Fecha Creaci÷n       : 31/01/2000                 --*/        
/*---Base Datos           : Microsoft Sql Server       --*/        
/*---Versi÷n              : 7.0                        --*/        
/*---Invoca a SP          :                            --*/        
/*-------------------------------------------------------*/        
        
/*-------------------------------------------------------*/        
/*---Modificado 1 por     :  D.CH                       --*/        
/*---Fecha Modificaci÷n   :  Agregar Comentarios        --*/         
/*---Detalle Modificaci÷n :  15/03/2002                 --*/        
/*-------------------------------------------------------*/        
/*-------------------------------------------------------*/        
/*---Modificado 2 por     : Maribel Julca Rodriguez    --*/        
/*---Fecha Modificaci©n   : 21/04/2005                 --*/         
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA, CO_USUA_MODI--*/        
/*-------------------------------------------------------*/        
/*---------------------------------------------------------*/      
/*---Modificado 3 por     : Carlos Marquez Escobar       --*/      
/*---Fecha Modificaci÷n   : 10/10/2005                   --*/      
/*---Detalle Modificaci÷n : Grabar Estados tabla de Detalle--*/      
/*---------------------------------------------------------*/      
/*-------------------------------------------------------*/        
/*---Comentarios                                       --*/        
/*---                                                  --*/        
/*---                                                  --*/        
/*-------------------------------------------------------*/        
        
/*-------------------------------------------------------*/        
/*---Drop Proc SP_TCCANJ_CLIE_I05                      --*/        
/*--- Grant Execute On SP_TCCANJ_CLIE_I05 to public         --*/         
/*---SP_TCCANJ_CLIE_I05                                --*/        
/*-------------------------------------------------------*/        
 @ISCO_EMPR      TD_VC_002,         
 @ISCO_USUA_MODI TD_VC_008_USUA,        
 @ISNO_AVAL  TD_VC_100,        
 @ISNO_DIRE_AVAL TD_VC_100,        
 @ISNU_RUCC_AVAL TD_VC_020,        
 @ISNU_TELE_AVAL TD_VC_020,        
 @ISCO_CLIE      TD_VC_020,        
 @IDFE_CANJ      TD_DT_001,        
 @ISCO_MONE      TD_VC_003,        
 @INFA_TIPO_CAMB TD_NU_015_006,        
 @ISCO_BANC      TD_VC_003,        
 @ISCO_AGEN      TD_VC_003,        
 @ISNU_CANJ      TD_VC_008,        
 @ISCO_ESTA_DOCU TD_VC_003,        
 @ISCO_TIPO_OPER TD_VC_003,        
 @ISDE_LUGA_GIRO TD_VC_020,        
 @ISCO_UNID_CNTB TD_VC_003,        
 @ISNU_SERI   TD_VC_004,        
 @ISST_MODI   TD_VC_001      
 As      
Declare         
   @CNNU_ORDE_LETR TD_IN_001,        
   @CSUL_CORR_LETR TD_VC_020,        
   @CDFE_VENC     TD_DT_001,        
   @CNIM_TOTA     TD_NU_016_004,        
   @CNIM_SALD  TD_NU_016_004,        
   @CNIM_AMRT  TD_NU_016_004,        
   @CNIM_INTR  TD_NU_016_004,        
   @CNIM_VALO_CUOT TD_NU_016_004,        
        
   @CSDE_GLOS     TD_VC_100,        
        
   @VNNU_SECU      TD_IN_001,           
   @OSTI_DOCU      TD_VC_003,        
   @VSTI_CLIE     TD_VC_003,        
   @VNNU_FETC_0001 TD_IN_001,        
   @VNNU_LONG     TD_IN_001,        
   @VSUL_CORR_LETR TD_VC_020,        
   @VNNU_ULTI_CORR TD_IN_001        
        
        
   Exec SP_TTDOCU_CNTB_Q02 6, @OSTI_DOCU OUTPUT        
        
        
   Select @VNNU_LONG = NU_LONG        
   From TTDOCU_CNTB        
   Where TI_DOCU = @OSTI_DOCU        
        
   Select @VSTI_CLIE = T1.TI_CLIE        
   From TMAUXI_EMPR T1, TMPARA_TESO T2        
   Where T1.CO_EMPR = @ISCO_EMPR        
   And T1.TI_AUXI_EMPR = T2.CO_TIAU_CLIE        
   And T1.CO_AUXI_EMPR = @ISCO_CLIE        
   And T1.CO_EMPR = T2.CO_EMPR        
        
        
 Begin Tran SP_TCCANJ_CLIE_I05        
        
   Declare CU_TCCANJ_CLIE_I05_1 Cursor        
   For        
  Select NU_ORDE_LETR, UL_CORR_LETR, FE_VENC, IM_TOTA,         
   IM_SALD, IM_AMRT, IM_INTR, IM_VALO_CUOT, DE_GLOS          
   From  #TWPLAZ_CNCL        
        
   Open  CU_TCCANJ_CLIE_I05_1        
   Fetch CU_TCCANJ_CLIE_I05_1 Into        
   @CNNU_ORDE_LETR, @CSUL_CORR_LETR, @CDFE_VENC, @CNIM_TOTA,         
   @CNIM_SALD, @CNIM_AMRT, @CNIM_INTR, @CNIM_VALO_CUOT, @CSDE_GLOS        
        
   Select @VNNU_FETC_0001 = @@FETCH_STATUS        
        
   While (@VNNU_FETC_0001 = 0)        
 Begin        
  If (@VNNU_FETC_0001  < 0)        
  Begin        
   RAISERROR 20001 'FIN DE ARCHIVO'        
   CLOSE CU_TCCANJ_CLIE_I05_1        
   DEALLOCATE CU_TCCANJ_CLIE_I05_1        
   RETURN        
  End        
        
  If Rtrim(Isnull(@ISNU_SERI, '')) != ''        
  Begin        
   Select @VNNU_ULTI_CORR = NU_ULTI_CORR + 1        
   From TDCORR_FINA        
   Where CO_EMPR = @ISCO_EMPR         
   And TI_DOCU = @OSTI_DOCU        
   And NU_SERI = @ISNU_SERI        
         
   Update TDCORR_FINA        
   Set NU_ULTI_CORR = @VNNU_ULTI_CORR        
   Where CO_EMPR = @ISCO_EMPR         
   And TI_DOCU = @OSTI_DOCU        
   And NU_SERI = @ISNU_SERI        
         
 Select @VSUL_CORR_LETR = @ISNU_SERI + REPLICATE('0', @VNNU_LONG - 2 - Len(@ISNU_SERI) -         
   Len(Convert(Varchar(15), @VNNU_ULTI_CORR))) +        
   Convert(Varchar(15), @VNNU_ULTI_CORR) + '-0'

  End        
  Else        
  Begin        
   Select @VNNU_ULTI_CORR = NU_ULTI_CORR + 1        
   From TTCORR_FINA        
   Where CO_EMPR = @ISCO_EMPR         
   And TI_DOCU = @OSTI_DOCU        
         
   Update TTCORR_FINA        
   Set NU_ULTI_CORR = @VNNU_ULTI_CORR        
   Where CO_EMPR = @ISCO_EMPR         
   And TI_DOCU = @OSTI_DOCU        
         
  Select @VSUL_CORR_LETR = REPLICATE('0', @VNNU_LONG - 2 - Len(Convert(Varchar(15), @VNNU_ULTI_CORR))) +        
   Convert(Varchar(15), @VNNU_ULTI_CORR) + '-0'

  End        
        
  If @VSUL_CORR_LETR != @CSUL_CORR_LETR        
   Select @ISST_MODI = 'S'        
        
-- SOLO MIENTRAS SE PONEN AL DIA  
SELECT @VSUL_CORR_LETR = @CSUL_CORR_LETR    
  
  Insert into TMLETR_CLIE (CO_EMPR, NU_LETR_CLIE, CO_CLIE, FE_EMIS,         
   FE_VENC, CO_MONE, FA_TIPO_CAMB, IM_TOTA, DE_GLOS, CO_BANC, CO_AGEN,        
   NU_CANJ, CO_ESTA_DOCU, CO_TIPO_OPER, CO_UNID_CONC, NO_AVAL, NO_DIRE_AVAL,         
   NU_RUCC_AVAL, NU_TELE_AVAL, DE_LUGA_GIRO, TI_CLIE, IM_SALD,         
   IM_AMRT, IM_INTR, IM_VALO_CUOT, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)        
  Values ( @ISCO_EMPR, @VSUL_CORR_LETR, @ISCO_CLIE, @IDFE_CANJ, @CDFE_VENC,        
   @ISCO_MONE, @INFA_TIPO_CAMB, @CNIM_TOTA, @CSDE_GLOS, @ISCO_BANC, @ISCO_AGEN,         
   @ISNU_CANJ, @ISCO_ESTA_DOCU, @ISCO_TIPO_OPER,  @ISCO_UNID_CNTB,  @ISNO_AVAL,        
   @ISNO_DIRE_AVAL,  @ISNU_RUCC_AVAL,  @ISNU_TELE_AVAL,   @ISDE_LUGA_GIRO,         
   @VSTI_CLIE, @CNIM_SALD, @CNIM_AMRT, @CNIM_INTR, @CNIM_VALO_CUOT, @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE() )   
     
        
  If @@error <> 0        
  Begin        
   Rollback tran        
   Return        
  End            
        
  Select @VNNU_SECU = ISNULL(Max(NU_SECU),0) + 1        
  From   TDKARD_DOCU        
  Where  CO_EMPR = @ISCO_EMPR        
        
  Insert Into TDKARD_DOCU (CO_EMPR, NU_SECU,CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_ESTA_ACTU,        
  CO_ESTA_DOCU, NU_CORR_MODI, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI )        
  Values ( @ISCO_EMPR, @VNNU_SECU , @OSTI_DOCU, @VSUL_CORR_LETR, @ISCO_CLIE,        
  @ISCO_ESTA_DOCU,   @ISCO_ESTA_DOCU, @VNNU_SECU, @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE())          
        
  If @@error <> 0        
  Begin        
   Rollback tran  SP_TCCANJ_CLIE_I05      
   Return        
  End         
        
  Insert Into TDCANJ_CLIE       
  (CO_EMPR, CO_UNID_CONC, CO_CLIE, NU_CANJ, FE_CANJ, NU_SECU_CANJ,        
  NU_ORDE_LETR, NU_LETR_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_ESTA_ORIG,       
  CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)        
  Values ( @ISCO_EMPR, @ISCO_UNID_CNTB, @ISCO_CLIE, @ISNU_CANJ, @IDFE_CANJ, @CNNU_ORDE_LETR, @CNNU_ORDE_LETR,        
  @VSUL_CORR_LETR, NULL, NULL, @ISCO_ESTA_DOCU,       
  @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE() )        
        
  If @@error <> 0        
  Begin        
   Rollback tran  SP_TCCANJ_CLIE_I05      
   Return        
  End            
        
        
  Fetch CU_TCCANJ_CLIE_I05_1 Into        
  @CNNU_ORDE_LETR, @CSUL_CORR_LETR, @CDFE_VENC, @CNIM_TOTA,         
  @CNIM_SALD, @CNIM_AMRT, @CNIM_INTR, @CNIM_VALO_CUOT, @CSDE_GLOS        
        
  Select @VNNU_FETC_0001 = @@FETCH_STATUS        
       
 END        
        
CLOSE CU_TCCANJ_CLIE_I05_1        
DEALLOCATE CU_TCCANJ_CLIE_I05_1        
        
Commit Tran SP_TCCANJ_CLIE_I05      
    
select   @ISST_MODI = 'N'      
Select @ISST_MODI        
        
/*------------------------- Fin ------------------------------*/




GO
